Workflow systems exist that allow enterprises to formalize the processes by which the enterprises achieve their business objectives. Such workflow systems provide step-by-step descriptions of tasks which must or should be performed as part of the workflow, so that individuals or groups within the enterprise can be assigned individual (or groups of) tasks. The tasks may be dependent upon one another; for example, a task may only be begun upon completion of a prior task(s), or tasks may be included in iterative task loops. Additionally, the tasks may have more complex dependencies, requiring application of extensive logic rules to ensure proper completion of the workflow.
Examples of such conventional workflows can be found explicitly or implicitly in almost any enterprise. For example, a manufacturing plant may have a workflow for producing a particular type of good. As another example, an organization selling goods may have a workflow for obtaining the goods, inputting orders and/or payments for the goods, selecting a shipper for shipping the goods, and updating an inventory record based on the sale.
Some workflow systems generally deal only with specific types of pre-defined, static workflows, in which tasks are assigned to human task performers for completion. To the extent that software applications are used in such systems, generally only a basic or minimal level of coordination between the human task performers and the application components is implemented. Moreover, as referred to above, such systems are often implemented in the context of a single enterprise or organization.
In other systems, software applications are integrated into the workflow(s), and human task performers may be involved only for part of the workflow, if at all. Moreover, such systems may cross organizational boundaries by using various existing messaging infrastructures. Such systems may be referred to as business process management (BPM) systems, to reflect a broader context of implementation than is found in conventional workflow systems.
In using such business process models, it may be problematic for one enterprise or organization to interact with another enterprise or organization. Often, tasks of business processes of each enterprise or organization are linked together or combined using an event flow that provides a desired order to the tasks. However, such combined business process models may be difficult to validate or optimize, and may be inflexible in terms of assigning or distributing tasks to the various participants (e.g., each participant is simply performing the tasks of its own business process model). Moreover, a first participant's business process model may have its own nomenclature, semantics, and/or workflow engine (for enactment of the business process model), where none of these are necessarily compatible with a second participant's business process model.
As a result of these and other difficulties associated with integrating and distributing business process models between or among enterprises, collaborations between or among enterprises may be limited. For example, the enterprises may only be able to interact in relatively simplistic manners, so that interactions between the enterprises are limited in quantity and complexity.